iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
生成式 AI

GenAI 與人機協作下的遺留系統重構實戰|以占星軟體 Moira 為例系列 第 2

Day 02|ChartData 模型轉譯與資料結構還原

  • 分享至 

  • xImage
  •  

本日任務聚焦於 Moira 占星系統的核心資料結構 —— ChartData 類別。

這個類別在 Java 中負責儲存星盤中所有天體、節氣、宮位與曆法相關資料,
在缺乏文件與註解的狀況下,還原其資料意圖與邏輯結構,成為重構工程中關鍵的一步。

我們將結合 Claude 分析、命名語意判斷、占星學家協助說明等方式,
逐步將其轉譯為 Python 模型類別,並作為 Django models.Model 架構的起點。

🎯 今日目標

  • 完整閱讀與分析 ChartData.java 類別邏輯
  • 與 Claude 進行語意推理與欄位意圖還原
  • 轉換為 Python 類別結構,初步實作 Django 資料模型
  • 彙整不明欄位,提交占星學家協助判讀

🔧 今日進度紀錄

✅ 實作內容

  • 使用 Claude Code CLI 載入並解析 ChartData.java
  • 由 AI 初步產生欄位轉換草稿與解釋(共約 20+ 欄位)
  • 手動修正命名、型別與分群結構(如 planet_poshouse_pos
  • 與占星學家討論「本命盤 vs 擇日盤」的資料結構區隔

🤖 Claude 協作摘要

AI 任務設定:
- 解析原始 Java 類別的欄位意圖與資料型別
- 按照我定義的 Python 命名風格產生 Django 類別定義草稿

AI 輸出結果:
- 成功對超過 80% 欄位提出合理轉譯(含 float、list、str 等型別)
- 對含糊變數(如 `data[]`, `flag`, `value`) 提供 3 種用途猜測
- 協助分類欄位邏輯區段:天體、曆法、使用者屬性、占星標記

📈 技術補充筆記

  • Python 資料模型命名原則:使用 snake_case,避免簡寫(如 pl_pos → planet_position
  • 初期不建立 ForeignKey 關聯,所有資料以主結構集中,便於後續解耦
  • 模型建立時加入 __str__(),方便管理後台測試查閱

🧠 小結與明日展望

  • 今日完成 ChartData 類別約 85% 欄位之轉譯與註解補全
  • 不明欄位將於明日完成使用者故事與占星師共識定義
  • 明日目標將聚焦於 ChartData 的測試設計與資料初始化流程

上一篇
Day 01|遺留系統技術重構實戰:建立重構藍圖與 AI 協作策略
下一篇
Day 03|紫炁計算引擎實作與完整星盤生成
系列文
GenAI 與人機協作下的遺留系統重構實戰|以占星軟體 Moira 為例7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言